
import { createStore } from "vuex";


const store = createStore({
    // vuex中央仓库的数据定义区域 == vuex的变量状态仓库 == 项目中需要被全局共享的数据
    // app.config.globalProperties.$store = vuex的仓库对象;
    state:{
        msg:"vuex-msg",
        meuns:[]
    },
    // vuex的计算属性库
    getters:{
        newMsg:function(state){
            return state.msg + ".end"
        }
    },

    // 为vuex state 仓库的变量提供 专用于的 异步请求方法定义区域
    //          loadMsg:function( store,params )
    //                  store 是vuex的整个仓库对象 = this.$store
    //                  params 额外的参数
    //  actions 方法通过 store.dispatch("actions 方法名",额外参数)
    actions:{
        loadMsg( store,params ){
            console.log("为msg 发送ajax请求:",params)

            store.commit("setMsg", Math.random() )
        }
    },

    // 状态突变方法 == 多余功能 == vuex5(pinia) 该功能的定义被删除-有库自动生成
    //      setMsg:function(state,nv)
    //              state 为当前vuex构建的状态仓库
    //              nv 需要修改的新值
    //  突变方法 通过 store 提供 commit 事件触发函数进行调用
    //              store.commit("突变方法名",nv值)
    mutations:{
        setMsg:function(state,nv){
            state.msg = nv;
        }
    }
})


export default store;



